home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-07-15 | 1.1 KB | 55 lines | [TEXT/MPS ] |
- IMPLEMENTATION
-
- CONST
- kAppParmsSize = 32;
-
- FUNCTION A5Size : Longint;
- C; EXTERNAL; { in MPW's Runtime.o }
-
- PROCEDURE A5Init (myA5: Ptr);
- C; EXTERNAL; { in MPW's Runtime.o }
-
- PROCEDURE MakeA5World (VAR A5Ref: A5RefType);
- BEGIN
- A5Ref := NewHandle(A5Size);
- { The calling routine must check A5Ref for NIL! }
- IF A5Ref <> NIL THEN
- BEGIN
- HLock(A5Ref);
- A5Init(Ptr(Longint(A5Ref^) + A5Size - kAppParmsSize));
- HUnlock(A5Ref);
- END;
- END;
-
- FUNCTION SetA5World (A5Ref: A5RefType) : Longint;
- BEGIN
- HLock(A5Ref);
- SetA5World := SetA5(Longint(A5Ref^) + A5Size - kAppParmsSize);
- END;
-
- PROCEDURE RestoreA5World (oldA5: Longint; A5Ref: A5RefType);
- BEGIN
- IF Boolean (SetA5(oldA5)) THEN; { side effect only }
- HUnlock(A5Ref);
- END;
-
- PROCEDURE DisposeA5World (A5Ref: A5RefType);
- BEGIN
- DisposHandle(A5Ref);
- END;
-
- FUNCTION OpenA5World (VAR A5Ref: A5RefType) : Longint;
- BEGIN
- MakeA5World(A5Ref);
- IF A5Ref <> NIL THEN
- OpenA5World := SetA5World(A5Ref)
- ELSE
- OpenA5World := 0;
- END;
-
- PROCEDURE CloseA5World (oldA5: Longint; A5Ref: A5RefType);
- BEGIN
- RestoreA5World(oldA5, A5Ref);
- DisposeA5World(A5Ref);
- END;
-